1. Field of Invention
This invention is directed to logically modifiable VLSI digital circuits, and more specifically to combinational and synchronous sequential circuits that may be dynamically configured and re-configured to perform a digital function of choice.
2. Related Art
Digital circuits are realised with integrated circuits. An integrated circuit, called chip, contains electrical components such as transistors, diodes, resistors and capacitors. The various components are interconnected inside the chip to form gates and memory elements.
A combinational circuit (CC) is obtained using exclusively elementary gates (NOT, OR, AND, XOR, NOR, etc.). Each combinational circuit have a hardware structure designed to perform definite functions, as specified by logical equations. Consequently, there is a specific hardware structure for a 3 to 8 decoder, another hardware structure for a 4 bits comparator, and so on.
Sequential circuit, and the invention considers only the synchronous sequential circuits (SSC), contains gates and memory elements. Information is charged in memory elements to establish the initial state or the next state of the circuit. The model of synchronous sequential circuit in which the outputs depend on both the input variables and the state variables is called Mealy machine model. In another model of synchronous sequential circuit, called Moore machine model, the outputs depend only on the state variables. It is always possible to convert from one representation of synchronous sequential model to the other. For the purpose of the invention, any synchronous sequential circuit is represented as a Moore machine. FIG. 1 illustrates the Moore machine model, where combinational circuit 10 determines the next state stored in the memory part 25, and combinational circuit 20 determines the outputs. In the general case, combinational circuit 10 is defined by equations including both, input variables and state variables. As it is known, an important number of usual synchronous sequential circuits define their next state by logical equations that use only the state variables, without considering any input variable, except the clock. For example, all the counters have this structure. The nature of the logical flip-flops used in the memory part 25 influences the structure of combinational circuit 10 and/or 20. The simplest solution for the memory part 25 uses D synchronous flip-flops. Like combinational circuits, each synchronous sequential circuit has its own hardware structure. Thus, there is a specific hardware structure for an 8 bits synchronous binary counter, another hardware structure for a 6 bits pseudo-random generator, and so on.
As the digital technique advanced, the design of circuits was realised by developing VLSI (very large scale integrated) technologies. A general digital VLSI circuit consists of logic functional blocks and memory elements, which are interconnected by connection lines to perform a specific task (for example a VLSI processor). Many real applications need to configure a specific logical structure, or to be able to change dynamically an initial structure, consequently the ability to cover a re-configurable logical behavior. These kinds of applications use programmable VLSI logic devises. Programmable logic devices have progressed from simple group of gates to very complex Field Programmable Gate Arrays (FPGAs), which have a large number of inputs and outputs, memory elements, programmable logic blocks, tracks for interconnecting the logical blocks to each other and to inputs and outputs. The FPGA's are used to implement or to modify structures with a high number of logic functions, which result in lower part counts, lower power dissipation, higher speed of operation and greater flexibility than if discrete components are used.
Using the conventional programmable VLSI circuits, to realise a particular logical structure or to modify such a structure and implicitly its logical behavior, requires, for any combinational or synchronous sequential complex circuit, a programming effort and a dedicated programmable device. Consequently, a separate program is needed each time such a particular circuit is implemented, or modified in hardware. In addition, for complex circuits the developer must add the logic part for testing the functional structure of the circuit, which takes a large surface of the real estate.